package com.huangsm.concurrence.executor;

import java.util.concurrent.*;

/**
 * 执行器服务submit(Callable)
 * @author huang
 * @date 2019/2/14
 */
public class ExecutorServiceDemo3 {
    /**
     * submit(Callable) 方法类似于 submit(Runnable) 方法，除了它所要求的参数类型之外。
     * Callable 实例除了它的 call() 方法能够返回一个结果之外和一个 Runnable 很相像。Runnable.run() 不能够返回一个结果。
     * Callable 的结果可以通过 submit(Callable) 方法返回的 Future 对象进行获取
     */
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        ExecutorService executorService= Executors.newFixedThreadPool(10);
        Future future = executorService.submit(()->{
                System.out.println("Asynchronous Callable");
                return "Callable Result";
        });

        System.out.println("future.get() = " + future.get());

    }
}
